﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.DynamicData;

namespace Ross.EntityFramework.Model
{
    [TableName("Targets")]
    public class Targets : IEntity<int>
    {
        /// <summary>
        /// 主键ID,自增长.
        /// </summary>
        public int ID { get; set; }

        /// <summary>
        /// 唯一标识.
        /// </summary>
        public string Guid { get; set; }

        /// <summary>
        /// 分类.
        /// </summary>
        public string Classification { get; set; }

        /// <summary>
        /// 部门.
        /// </summary>
        public string Department { get; set; }

        /// <summary>
        /// 目标名.
        /// </summary>
        public string TargetName { get; set; }

        /// <summary>
        /// 目标描述.
        /// </summary>
        public string TargetDescription { get; set; }

        /// <summary>
        /// 考核基准.
        /// </summary>
        public string AssessmentCriteria { get; set; }

        /// <summary>
        /// 考核方式.
        /// </summary>
        public string AssessmentMethod { get; set; }

        /// <summary>
        /// 核算方式.
        /// </summary>
        public string AccountingMethod { get; set; }

        /// <summary>
        /// 统计人.
        /// </summary>
        public string Statistician { get; set; }

        /// <summary>
        /// 资源支持.
        /// </summary>
        public string ResourceSupport { get; set; }

        /// <summary>
        /// 责任人.
        /// </summary>
        public string Responsible { get; set; }

        /// <summary>
        /// 计划文件路径.
        /// </summary>
        public string PlanningDocumentURL { get; set; }

        /// <summary>
        /// 是否锁定.
        /// </summary>
        public bool Lock { get; set; }

        /// <summary>
        /// 目标状态.
        /// </summary>
        public string TargetState { get; set; }

        /// <summary>
        /// 上层目标ID.
        /// </summary>
        public int ParentTargetID { get; set; } = -1;

        /// <summary>
        /// 创建时间.
        /// </summary>
        public DateTime CreationTime { get; set; } = DateTime.Now;

        /// <summary>
        /// 开始时间.
        /// </summary>
        public DateTime StartingTime { get; set; }

        /// <summary>
        /// 计划完成时间.
        /// </summary>
        public DateTime PlannedCompletionTime { get; set; }

        /// <summary>
        /// 实际完成时间.
        /// </summary>
        public DateTime ActualCompletionTime { get; set; }

        /// <summary>
        /// 修改时间.
        /// </summary>
        public DateTime ReviseTime { get; set; }

        /// <summary>
        /// 审批人.
        /// </summary>
        public string Approver { get; set; }

        /// <summary>
        /// 审批状态.
        /// </summary>
        public string ApprovalStatus { get; set; }

        /// <summary>
        /// 审批时间.
        /// </summary>
        public DateTime ApprovalTime { get; set; }

        /// <summary>
        /// 版本号.
        /// </summary>
        public string Version { get; set; }

        /// <summary>
        /// 预算1.
        /// </summary>
        public double? Budget1 { get; set; }

        /// <summary>
        /// 费用类别1.
        /// </summary>
        public string CostCategory1 { get; set; }

        /// <summary>
        /// 预算2.
        /// </summary>
        public double? Budget2 { get; set; }

        /// <summary>
        /// 费用类别2.
        /// </summary>
        public string CostCategory2 { get; set; }

        /// <summary>
        /// 预算3.
        /// </summary>
        public double? Budget3 { get; set; }

        /// <summary>
        /// 费用类别3.
        /// </summary>
        public string CostCategory3 { get; set; }

        /// <summary>
        /// 层级深度.
        /// </summary>
        public int Depth { get; set; }

        /// <summary>
        /// 目标中心.
        /// </summary>
        public string TargetCenter { get; set; }

        /// <summary>
        /// 目标团队.
        /// </summary>
        public string TargetTeam { get; set; }

        /// <summary>
        /// 完成标准.
        /// </summary>
        public string CompletionCriteria { get; set; }

        /// <summary>
        /// 邮箱号.
        /// </summary>
        public string email { get; set; }

    }
}
